<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_giras.php");
require_once("../Datos/Selectores/Sel_Vencimientos.php");
require_once("../Datos/Selectores/Sel_Localidades.php");
require_once("../Datos/Tablas/Tbl_ec_usuarios.php");

class Sel_Giras extends Selector{

	function Sel_Giras(&$conexion){
		$this->Selector($conexion);

		$this->Nombre = "Giras";
		$this->estTablaBase(new Tbl_ec_giras($conexion, ''));

            $relacionada = new SubConsulta(new Sel_Localidades($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		
		$relacionada = new SubConsulta(new Sel_Vencimientos($conexion), 'Vencimientos');
		$this->agregarTablaRelacionada($relacionada, 'LEFT JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('gi_id'), $this->obtCampoRelacionado('Vencimientos', 'Gira'), '=');

		$this->agregarCampoJunta($this->tablaBase->obtCampo('gi_localidad'), $this->obtCampoRelacionado('Localidades', 'Codigo'), '=');
             $relacionada = new Tbl_ec_usuarios($conexion, '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');

		$this->agregarCampoJunta($this->tablaBase->obtCampo('gi_cobrador'), $this->obtCampoRelacionado('ec_usuarios', 'u_id'), '=');

		$campo = $this->tablaBase->obtCampo('gi_id');
		$campo->estAlias('Codigo');
		$campo->estEsOrden("ASC");
		$campo->estEsGrupo(1);
		$this->agregarCampoVisible($campo);
				
		$tabla = $this->obtTabla('Localidades');
		$funcion = new Funcion('Localidad', 'Concat', $tabla);
		$campo = $this->obtCampoRelacionado('Localidades', 'Localidad');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('Localidades', 'Provincia');
		$funcion->agregarCampo($campo);

		$this->agregarCampoVisible($funcion);

		$tabla = $this->obtTabla('ec_usuarios');
		$funcion = new Funcion('Cobrador', 'Concat', $tabla);
		$campo = $this->obtCampoRelacionado('ec_usuarios', 'u_apellido');
		$funcion->agregarCampo($campo);

		$funcion->agregarTexto(', ');

		$campo = $this->obtCampoRelacionado('ec_usuarios', 'u_nombre');
		$funcion->agregarCampo($campo);

		$this->agregarCampoVisible($funcion);

		$campo = $this->tablaBase->obtCampo('gi_fecha');
		$campo->estAlias('Fecha');
		$this->agregarCampoVisible($campo);
		
		$campo = $this->tablaBase->obtCampo('gi_cobrador');
		$campo->estEsReadOnly(1);
		$campo->estNoIngresar(1);
		$campo->estOcultoListado(1);
		$campo->estOcultoDetalle(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->tablaBase->obtCampo('gi_localidad');
		$campo->estEsReadOnly(1);
		$campo->estNoIngresar(1);
		$campo->estOcultoListado(1);
		$campo->estOcultoDetalle(1);
		$this->agregarCampoVisible($campo);
		
		$tabla = $this->obtTabla("Vencimientos");
		$funcion = new Funcion('Total', '', $tabla);
		$funcion->agregarExpresion('IF(Sum(Vencimientos.Valor),FORMAT(Sum(Vencimientos.Valor), 2),0) ');
		$funcion->estEsReadOnly(1);
		$funcion->estEsBase(1);
		$this->agregarCampoVisible($funcion);

		$this->txtConsulta = $this->GenerarConsulta();
		$this->txtGrupo = "";
 }
}
?>
